/*
 * Copyright (C) 2024 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef VAP_FRAME_H
#define VAP_FRAME_H

#include <string>
#include <vector>

#include <nlohmann/json.hpp>
#include "vertex_util.h"

using json = nlohmann::json;

class Frame {
public:
    Frame(json jsonObj);
    
    std::string srcId = "";
    int32_t z = 0;
    PointRect frame;
    PointRect mFrame;
    int32_t mt = 0; // 遮罩旋转角度v2 版本只支持 0 与 90度

    bool operator<(const Frame &f) const { return z < f.z; }
    void PrintInfo();
};

class FrameSet {
public:
    FrameSet(json jsonObj);
    
    std::vector<Frame> frames;
    int index;
};

class FrameAll {
public:
    FrameAll(json jsonObj);
    
    std::map<int, FrameSet> frameAll;
};
#endif // VAP_FRAME_H
